home *** CD-ROM | disk | FTP | other *** search
- "--------------------------------------------------"
- " Border Class implements control of Amiga Borders."
- " The method to actually display the Border is in "
- " the Window Classes. "
- "--------------------------------------------------"
-
- Class Border :Glyph
- !
- leftEdge topEdge frontPen backPen drawMode count nextBorderName name
- !
- [
- remove
- <primitive 187 0 name>
- |
- registerTo: windowTitle
- <primitive 187 5 windowTitle name>
- |
- setStartPoint: sPoint " Set the LeftEdge & TopEdge parameters: "
- leftEdge <- sPoint x.
- topEdge <- sPoint y.
- <primitive 187 3 0 leftEdge name>.
- <primitive 187 3 1 topEdge name>
- |
- getStartPoint
- leftEdge <- <primitive 187 2 0 name>.
- topEdge <- <primitive 187 2 1 name>.
- ^ leftEdge @ topEdge
- |
- getBorderPens
- frontPen <- <primitive 187 2 2 name>.
- backPen <- <primitive 187 2 3 name>.
- ^ frontPen @ backPen
- |
- setBorderPens: newPensPoint ! fp bp !
- fp <- newPensPoint x.
- bp <- newPensPoint y.
- <primitive 187 3 2 fp name>.
- <primitive 187 3 3 bp name>.
- frontPen <- fp.
- backPen <- bp
- |
- getDrawMode
- drawMode <- <primitive 187 2 4 name>.
- ^ drawMode
- |
- setDrawMode: newDrawMode
- <primitive 187 3 4 newDrawMode name>.
- drawMode <- newDrawMode
- |
- getCount
- count <- <primitive 187 2 5 name>.
- ^ count
- |
- setCount: newCount
- <primitive 187 3 5 newCount name>.
- count <- newCount
- |
- getNextBorderName
- nextBorderName <- <primitive 187 2 6 name>.
- ^ nextBorderName
- |
- setNextBorderName: newBorder
- <primitive 187 3 6 newBorder name>.
- nextBorderName <- newBorder
- |
- setBorderPoint: thePt to: newPoint
- <primitive 187 4 thePt (newPoint x) (newPoint y) name>
- |
- new: borderName
- <primitive 187 1 2 borderName>.
- name <- borderName.
- nextBorderName <- nil.
- leftEdge <- 0.
- topEdge <- 0.
- frontPen <- 1.
- backPen <- 0.
- drawMode <- 1.
- count <- 2.
- ^ self
- ]
-
- "---------------------------------------------------------------------"
- " Line Class relies on Class Border to implement a lot of its methods."
- "---------------------------------------------------------------------"
-
- Class Line :Border
- [
- makeLine: lineName from: fPoint to: tPoint
- super new: lineName.
- super setBorderPoint: 1 to: fPoint.
- super setBorderPoint: 2 to: tPoint.
-
- ^ self
- ]
-
- "---------------------------------------------------"
- " Triangle Class relies on Class Border to implement"
- " a lot of its methods. "
- "---------------------------------------------------"
-
- Class Triangle :Border
- [
- makeTriangle: triangleName vert1: v1Point vert2: v2Point vert3: v3Point
- super new: triangleName.
- super setCount: 4.
- super setBorderPoint: 1 to: v1Point.
- super setBorderPoint: 2 to: v2Point.
- super setBorderPoint: 3 to: v3Point.
- super setBorderPoint: 4 to: v1Point.
-
- ^ self
- ]
-
- "----------------------------------------------------"
- " Rectangle Class relies on Class Border to implement"
- " a lot of its methods. "
- "----------------------------------------------------"
-
- Class Rectangle :Border
- [
- makeRectangle: rectangleName from: fPoint to: tPoint ! x1 y1 x2 y2 !
- x1 <- fPoint x.
- y1 <- fPoint y.
- x2 <- tPoint x.
- y2 <- tPoint y.
-
- super new: rectangleName.
- super setCount: 5.
-
- super setBorderPoint: 1 to: x1 @ y1.
- super setBorderPoint: 2 to: x2 @ y1.
- super setBorderPoint: 3 to: x2 @ y2.
- super setBorderPoint: 4 to: x1 @ y2.
- super setBorderPoint: 5 to: x1 @ y1.
-
- ^ self
- ]
-